iT邦幫忙

2022 iThome 鐵人賽

DAY 6
1
Software Development

剛入職軟體工程師會需要知道的常見工具篇系列 第 6

[Day6] 簡單搞懂Restful API設計風格(下)

  • 分享至 

  • xImage
  •  

在昨天直接看實際範例後,今天要來解說Rest到底有什麼風格特色!!

六大風格特色

  • Client-Server
  • Stateless
    • 以Server的角度來說,約束伺服器不應該記住客戶端的狀態(user sessions),代表每一次客戶端發送請求都需要包含所需要的資料,也就是說每一次的response都需要符合自我描述(Self-Descriptive Messages)的能力,Server不依賴過去請求的資料
  • Cacheable
    • 支援快取系統,以避免伺服器及客戶端重複來往相同的資料
  • Layered System
    • 伺服器和客戶端中間可以設有Connetors(可以多層),增加可擴展性並且提供快取來連接彼此,彼此是互相獨立
  • Uniform Interface
    • 使用統一的接口可以簡化整體架構,並讓各部分獨立發展,串接時皆使用統一標準的接口
    • Identification of resources
      • 在REST原則中有一個元素叫做resources(資源),例如,文件、圖片、影片等,而Uniform Resource Identifier (URI)就是用來識別這些資源的,不過實際上我們會使用URL(URI是由URL&URN所組成),每個URL會對應到單一個resource,並且都會透過此URL來訪問該資源
    • Manipulation of resources through representations
      • 透過不同的操作手法來操作資源,舉例就是使用不同的GET, POST, PUT ,DELETE Methods
    • Self-descriptive messages
      • 每一次的response都需要符合自我描述,舉例Content-Type
  • Code on Demand(optional)
    • 可以下載和執行程式,舉例web檔案大多是靜態檔案,但基於javascript的web 使用API已經非常普遍,而瀏覽器支援便能執行程式就是一種。來源

這邊有個故事是在說明rest在生活中的舉例,舉書桌為例,桌上可能有鉛筆,筆記本,馬克杯,電腦等等,這些都是物品(nouns),那你可能會拿起杯子,打開電腦,使用鉛筆,撕掉筆記本的紙,這些動作(Verbs)就像是我們說的methods,只不過被定義成像是GET, PUT, DELETE...etc, 對網頁來說,裡面可能是文字、圖片、影片等,想像網頁中所有東西都是物品,我們可以透過URL來獲取(GET)這些資料、新增(POST or PUT)資料、刪除(Delete)資料,這些URL可以用來識別所需要的資料(response)且傳遞所需要理解資料(ex. Content-Type),並用來進行標準化的溝通。


上一篇
[Day5] 簡單搞懂Restful API設計風格(上)
下一篇
[Day7] 簡單搞懂Restful API Python 實作範例
系列文
剛入職軟體工程師會需要知道的常見工具篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言